Hyperthreading - padani aplikace

Otázka od: David Fajfr

13. 8. 2004 8:26

Ahoj kluci (a mozna par holek  ,

vim, ze ted mate plno prace se Synaserem, ale mohl byste mi nekdo, prosim,
poradit proc se mi aplikace nechce spoustet na nekterych novych masinach,
kde je vic procesoru nebo kde je povoleny hyperthreading. Pri pokusu spustit
aplikaci windows jen vyhodi hlasku "Faulting application...". Program se
musi spustit v rezimu kompatibility s W95-98 a pak je vse OK.

Jen doplnim, ze aplikace je psana v D5 a jsou tam pouzite komponenty IBX,
dxDBGrid od Developer Express, TBToolbar od jrsoftware.

Diky za pomoc,

David



Odpovedá: Lukas Gebauer

13. 8. 2004 11:23

> vim, ze ted mate plno prace se Synaserem, ale mohl byste mi nekdo,
> prosim, poradit proc se mi aplikace nechce spoustet na nekterych
> novych masinach, kde je vic procesoru nebo kde je povoleny
> hyperthreading. Pri pokusu spustit aplikaci windows jen vyhodi hlasku
> "Faulting application...". Program se musi spustit v rezimu
> kompatibility s W95-98 a pak je vse OK.

Jsi si jistym, ze zadna z tech tebou pouzitych komponent nepouziva
interne treba thready?

V pripade multithreadoveho programovani opravdu mnoho lidi dela
zavazne chyby, ktere se na jednoprocesorovych strojich neprojevi!
Jakmile to ale zkusis na multiprocesorech, pripadne na
hyperthreadingu, tyto chyby vyskaci jak pupence pri nestovicich.

Je tedy mozne, ze nejakou takovouto zavaznou chybu obsahuje nejaka
tebou pouzita komponenta (nebo tvuj kod, pouzivas-li thready), a
proto ti to pada.

Nastaveni kompatibility na W9x v tomto pripade presne pomaha, protoze
tyto systemy nepodporovaly viceprocesorove stroje, a tak velmi
pravdepodobne nastaveni teto kompatibility zajisti, ze vsechny
thready v apliakci bezi na stejnem procesoru. tedy, apliakce se
tvari, jako kdyby bezela jen na jednorpocesorovem stroji.


--
Lukas Gebauer.

E-mail: gebauerl@mlp.cz
http://www.ararat.cz/synapse/ - Ararat Synapse - TCP/IP Lib.